package yang.action;

import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.springframework.beans.factory.annotation.Autowired;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ModelDriven;

import yang.pageModel.Json;
import yang.pageModel.User;
import yang.service.UserServiceI;

/**
 * 
 * @ClassName: UserAction
 * @Description: 用户请求
 * @author: Administrator
 * @date: 2014年6月13日 上午8:44:14
 */
@ParentPackage("basePackage")
@Namespace("/")
@Action("userAction")
public class UserAction extends BaseAction implements ModelDriven<User> {

	private static final Logger logger = Logger.getLogger(UserAction.class);
	private UserServiceI userService;
	User user = new User();
	private int ofid;
	private int userid;

	@Override
	public User getModel() {
		return user;
	}

	/**
	 * 
	 * @方法:根据医生显示挂号价格
	 * @author:阳 2014年6月11日
	 */
	public void getUserPrice() {
		super.writeJson(userService.getUserPrice(userid));

	}

	/**
	 * 
	 * @方法:按科室查询用户
	 * @author:阳 2014年6月10日
	 */
	public void findOfficeUser() {
		try {
			super.writeJson(userService.findUserByOffice(ofid));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 
	 * 方法名：save 方法作用：新建一个用户 作者：Mr.Yang 2014年5月27日 上午10:47:38
	 * 
	 */
	public void save() {
		Json j = new Json();
		try {
			userService.save(user);
			j.setMsg("成功添加用户");
			j.setSuccess(true);
		} catch (Exception e) {
			e.printStackTrace();
			j.setMsg("添加失败");
		}
		super.writeJson(j);
	}

	/**
	 * 
	 * @方法名：login
	 * @方法作用：用户登录 作者：Mr.Yang 2014年5月27日 上午10:47:56
	 * 
	 */
	public void login() {
		Json j = new Json();
		User u = null;
		try {
			u = userService.login(user);
			ActionContext.getContext().getSession().put("user", u);
			j.setMsg(u.getUserTruename()+"登录成功");
			logger.info("登录成功");
			j.setSuccess(true);
		} catch (Exception e) {
			e.printStackTrace();
			logger.error(u.getUserTruename()+"登录失败");
			j.setMsg("登录失败，请检查账号和密码是否正确！");
			j.setSuccess(false);
		}

		super.writeJson(j);

	}

	// ------ get set -----
	public UserServiceI getUserService() {
		return userService;
	}

	@Autowired
	public void setUserService(UserServiceI userService) {
		this.userService = userService;
	}

	public int getOfid() {
		return ofid;
	}

	public void setOfid(int ofid) {
		this.ofid = ofid;
	}

	public int getUserid() {
		return userid;
	}

	public void setUserid(int userid) {
		this.userid = userid;
	}
}
